Red Hat System Administration II 8.2

Поиск образов контейнеров и управление ими

Задачи

После завершения этого раздела вы сможете находить, извлекать и просматривать образы контейнеров, а также управлять образами контейнеров, полученными из удаленного реестра контейнеров и сохраненными на сервере.

Настройка реестров контейнеров

Утилита Podman использует файл registries.conf в системе хоста для получения сведений о реестрах контейнеров, которые она может использовать.

[user@host ~]$ cat /etc/containers/registries.conf
# This is a system-wide configuration file used to
# keep track of registries for various container backends.
# It adheres to TOML format and does not support recursive
# lists of registries.

# The default location for this configuration file is /etc/containers/registries.conf.

# The only valid categories are: 'registries.search', 'registries.insecure',
# and 'registries.block'.

[registries.search]
registries = ['registry.redhat.io', 'quay.io', 'docker.io']

# If you need to access insecure registries, add the registry's fully-qualified name.
# An insecure registry is one that does not have a valid SSL certificate or only does HTTP.
[registries.insecure]
registries = []

# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
#
[registries.block]
registries = []

Важно

Для обычного (непривилегированного) пользователя Podman этот файл хранится в каталоге $HOME/.config/containers. Параметры конфигурации в этом файле переопределяют системные параметры в файле /etc/containers/registries.conf.

Список реестров, в которых Podman может выполнять поиск, настроен в разделе [registries.search] этого файла. Если не указать полностью определенное имя образа в командной строке, Podman будет выполнять поиск в этом разделе в указанном порядке, чтобы определить, как сформировать полный путь к образу.

Команда podman info отображает сведения о конфигурации для Podman, включая настроенные реестры.

[user@host ~]$ podman info
...output omitted...
insecure registries:
  registries: []
registries:
  registries:
  - registry.redhat.io
  - quay.io
  - docker.io
...output omitted...

Безопасность реестров

Небезопасные реестры указаны в разделе [registries.insecure] файла registries.conf. Если реестр указан как небезопасный, подключения к нему не защищаются с помощью шифрования TLS. Если реестр доступен для поиска и является небезопасным, он может быть указан как в разделе [registries.search], так и в разделе [registries.insecure].

Для реестров контейнеров также можно настроить аутентификацию. Как уже говорилось ранее, необходимо использовать команду podman login для входа в реестр контейнеров, требующий аутентификации.

Поиск образов контейнеров

Используйте команду podman search, чтобы найти в реестре контейнеров определенный образ контейнера. В следующем примере показано, как найти в реестре контейнеров registry.redhat.io все образы, содержащие имя rhel8:

[user@host ~]$ podman search registry.redhat.io/rhel8
INDEX       NAME          DESCRIPTION                STARS   OFFICIAL   AUTOMATED
redhat.io   registry.redhat.io/openj9/openj9-8-rhel8      OpenJ9 1.8 OpenShift S2I image for Java Appl...   0
redhat.io   registry.redhat.io/openjdk/openjdk-8-rhel8    OpenJDK 1.8 Image for Java Applications base...   0
redhat.io   registry.redhat.io/openj9/openj9-11-rhel8     OpenJ9 11 OpenShift S2I image for Java Appli...   0
redhat.io   registry.redhat.io/openjdk/openjdk-11-rhel8   OpenJDK S2I image for Java Applications on U...   0
redhat.io   registry.redhat.io/rhel8/memcached            Free and open source, high-performance, dist...   0
redhat.io   registry.redhat.io/rhel8/llvm-toolset         The LLVM back-end compiler and core librarie...   0
redhat.io   registry.redhat.io/rhel8/rust-toolset         Rust and Cargo, which is a build system and ...   0
redhat.io   registry.redhat.io/rhel8/go-toolset           Golang compiler which will replace the curre...   0
...output omitted...

Выполните ту же команду с опцией --no-trunc, чтобы увидеть более длинные описания образов.

[user@host ~]$ podman search --no-trunc registry.access.redhat.com/rhel8
INDEX       NAME          DESCRIPTION                STARS   OFFICIAL   AUTOMATED
...output omitted...
redhat.io   registry.redhat.io/rhel8/nodejs-10            Node.js 10 available as container is a base platform for building and running various Node.js 10 applications and frameworks. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.          0

redhat.io   registry.redhat.io/rhel8/python-36            Python 3.6 available as container is a base platform for building and running various Python 3.6 applications and frameworks. Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming.          0

redhat.io   registry.redhat.io/rhel8/perl-526             Perl 5.26 available as container is a base platform for building and running various Perl 5.26 applications and frameworks. Perl is a high-level programming language with roots in C, sed, awk and shell scripting. Perl is good at handling processes and files, and is especially good at handling text.         0
...output omitted...

В следующей таблице приведены еще некоторые полезные опции команды podman search:

Таблица 13.1. Полезные опции поиска для утилиты Podman

Опция Описание
--limit <число> Ограничивает количество образов, отображаемых для одного реестра.
--filter <filter=значение> Фильтрует вывод на основе заданных условий. Поддерживаются приведенные ниже фильтры.
  • stars=<число>: показывает только образы с указанным или большим количеством звезд.

  • is-automated=<true|false>: показывает только образы, созданные автоматически.

  • is-official=<true|false>: показывает только образы, помеченные как официальные.

--tls-verify <true|false> Включает или отключает проверку сертификата HTTPS для всех используемых реестров. Default=true

Использование каталога контейнеров Red Hat Container Catalog

Red Hat поддерживает репозитории, содержащие сертифицированные образы контейнеров. Найти их можно в веб-интерфейсе по адресу https://access.redhat.com/containers.

Надежные образы из этого репозитория обеспечивают клиентам защиту от известных уязвимостей, которые могут появиться при работе с непроверенными образами. Стандартная команда podman совместима с репозиториями, содержащимися в Red Hat Container Catalog.

Просмотр образов контейнеров

Вы можете просмотреть сведения об образе, прежде чем загружать его в систему. С помощью команды skopeo inspect можно отобразить сведения об удаленном образе контейнера в реестре.

В приведенном ниже примере команда возвращает сведения об образе контейнера, не извлекая образ в локальную систему.

Примечание

Команда skopeo inspect может получать сведения об образах различных форматов из различных источников, таких как удаленные реестры и локальные каталоги. Транспортный механизм docker:// указывает утилите skopeo запросить реестр образов контейнеров.

[user@host ~]$ skopeo inspect docker://registry.redhat.io/rhel8/python-36
...output omitted...
                "name": "ubi8/python-36",
                "release": "107",
                "summary": "Platform for building and running Python 3.6 applications",
...output omitted...

С помощью команды podman inspect также можно просмотреть локально сохраненные сведения об образе. Эта команда может предоставить больше информации, чем команда skopeo inspect.

Отобразите список локально сохраненных образов.

[user@host ~]$ podman images
REPOSITORY                            TAG      IMAGE ID       CREATED       SIZE
quay.io/generic/rhel7                 latest   1d3b6b7d01e4   3 weeks ago   688 MB
registry.redhat.io/rhel8/python-36    latest   e55cd9a2e0ca   6 weeks ago   811 MB
registry.redhat.io/ubi8/ubi           latest   a1f8c9699786   6 weeks ago   211 MB

Получите сведения о локально сохраненном образе.

[user@host ~]$ podman inspect registry.redhat.io/rhel8/python-36
...output omitted...
        "Config": {
            "User": "1001",
            "ExposedPorts": {
                "8080/tcp": {}
...output omitted...
                "name": "ubi8/python-36",
                "release": "107",
                "summary": "Platform for building and running Python 3.6 applications",
...output omitted...

Удаление локальных образов контейнеров

Образы контейнеров являются неизменяемыми. Это означает, что старые образы не обновляются, поэтому для обновления программного обеспечения в контейнере требуется заменить старый образ новым.

Когда обновленный образ становится доступным, издатель изменяет тег latest, чтобы связать его с новым образом. К старому образу по-прежнему можно обращаться, указав тег его версии, и из него можно запускать контейнеры. Вы также можете удалить старый образ, извлечь новый образ и использовать только новый (обновленный) образ для запуска контейнеров.

Например, в образах, предоставляемых компанией Red Hat, применяется многолетний опыт Red Hat в области устранения уязвимостей и дефектов в системе безопасности Red Hat Enterprise Linux и других решений. Команда специалистов Red Hat по безопасности усиливает защиту этих образов и следит за их качеством. При обнаружении новых уязвимостей образы перестраиваются и снова проходят процедуру контроля качества.

Чтобы удалить локально сохраненный образ, используйте команду podman rmi.

Отобразите список локально сохраненных образов.

[user@host ~]$ podman images
REPOSITORY                            TAG      IMAGE ID       CREATED       SIZE
quay.io/generic/rhel7                 latest   1d3b6b7d01e4   3 weeks ago   688 MB
registry.redhat.io/rhel8/python-36    latest   e55cd9a2e0ca   6 weeks ago   811 MB
registry.redhat.io/ubi8/ubi           latest   a1f8c9699786   6 weeks ago   211 MB

Удалите образ registry.redhat.io/rhel8/python-36:latest.

[user@host ~]$ podman rmi registry.redhat.io/rhel8/python-36:latest
e55cd9a2e0ca5f0f4e0249404d1abe3a69d4c6ffa5103d0512dd4263374063ad
[user@host ~]$

Отобразите локально сохраненные образы и убедитесь, что образ был удален.

[user@host ~]$ podman images
REPOSITORY                            TAG      IMAGE ID       CREATED       SIZE
quay.io/generic/rhel7                 latest   1d3b6b7d01e4   3 weeks ago   688 MB
registry.redhat.io/ubi8/ubi           latest   a1f8c9699786   6 weeks ago   211 MB

Ссылки

Man-страницы podman-search(1), podman-inspect(1) и skopeo(1)

Дополнительные сведения см. в главе Working with Container Images руководства Red Hat Enterprise Linux 8 Building, Running, and Managing Containers: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/building_running_and_managing_containers/index#working-with-container-images_building-running-and-managing-containers